package com.youxue.service;

import com.youxue.entity.Interaction;

import java.util.List;

/**
 * Created by ACER on 2018/1/25.
 */
public interface InteractionService {
    Interaction selectByPrimaryKey(Integer id);

    List<Interaction> showOnePersonReview(Integer dynamicId, Integer replayId);

    int insertSelective(Interaction interaction);

    int insertReview(Integer interactionUserId, Integer dynamicId,
                     Integer replayId, String dynamicComment);



    /**
     * 添加一条动态直接评论或评论下方的回复
     *
     * @param interaction
     * @return
     */
    int addADynamicInteraction(Interaction interaction);

    /**
     * 删除一条动态直接评论（该评论下方所有回复都将删除）
     *
     * @param interactionId
     * @return
     */
    int deleteADynamicInteraction(Integer interactionId);

    /**
     * 删除一条回复
     *
     * @param interactionId
     * @return
     */
    int deleteAInteraction(Integer interactionId);

    /**
     * 查询一条动态所有评论（分页）
     *
     * @param dynamicId
     * @param startPos
     * @param pageSize
     * @return
     */
    List<Interaction> showADynamicAllCommentByPage(Integer dynamicId, Integer startPos, Integer pageSize);

    /**
     * 查询一条动态所有评论总数（分页）
     *
     * @param dynamicId
     * @return
     */
    int showADynamicAllCommentCount(Integer dynamicId);


    /**
     * 查询一条评论下所有回复总数
     *
     * @param interactionId
     * @return
     */
    int aCommentAllInteractionCount(Integer interactionId);

    /**
     * 查询一条评论下所有回复（分页）
     * @param interactionId
     * @param startPos
     * @param pageSize
     * @return
     */
    List<Interaction> showACommentAllInteractionByPage(Integer interactionId, Integer startPos, Integer pageSize);

    /**
     *查看一个用户所有未读的回复列表（不分页）
     * @param replayId
     * @return
     */
    List<Interaction> whatchMyNews(Integer replayId);

    /**
     * 查看一个用户所有未读的回复总数
     * @param replayId
     * @return
     */
    int whatchMyNewsCount(Integer replayId);
    /**
     * 将一条回复设置为已读
     * @param interactionId
     * @return
     */
    int readAInteraction(Integer interactionId);

    /**
     * 将多条回复设置已读
     * @return
     */
    int readListInteraction(Integer replayId);

    /**
     * 删除一条动态下的所有评论与回复（在用户删除动态时使用）
     * @param dynamicId
     * @return
     */
    int deleteListInteractions(Integer dynamicId);

    /**
     * 查询一条动态评论详情
     * @param interactionId
     * @return
     */
    Interaction showAInteractionInfo(Integer interactionId);
}
